package cn.itsource.quartz.config;

import org.quartz.*;
import org.springframework.boot.autoconfigure.quartz.QuartzDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

import javax.sql.DataSource;

@Configuration
public class QuartzConfig {
//    @Bean //把当前方法的返回值交给spring管理
//    public JobDetail newJob(){
//        return JobBuilder.newJob(PrintTimeJob.class)//PrintTimeJob我们的业务类
//                .withIdentity("9527")//可以给该JobDetail起一个id
//                //每个JobDetail内都有一个Map，包含了关联到这个Job的数据，在Job类中可以通过context获取
//                .usingJobData("msg", "Hello Quartz")//关联键值对
//                .storeDurably()//即使没有Trigger关联时，也不需要删除该JobDetail
//                .build();
//    }
//    @Bean
//    public Trigger printTimeJobTrigger() {
//        //CronScheduleBuilder 用来构建时间表达式
//        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/1 * * * * ? ");
//
//        return TriggerBuilder.newTrigger()
//                .forJob(newJob())//关联上述的JobDetail
//                .withIdentity("quartzTaskService")//给Trigger起个名字
//                .withSchedule(cronScheduleBuilder)
//                .build();
//    }

//    @Bean
//    @Primary //主数据库，指向pethome
//    @ConfigurationProperties(prefix = "spring.datasource")
//    DataSource dataSource(){
//        return DataSourceBuilder.create().build();
//    }
//    //为quartz创建一个自己数据源
//    @Bean
//    @QuartzDataSource //quartz数据源
//    @ConfigurationProperties(prefix = "spring.quartz.properties.org.quartz.datasource")
//    DataSource quartzDataSource(){
//        return DataSourceBuilder.create().build();
//    }
}